package ${basePackage}.application.${moduleName};

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.inject.Named;

import java.util.Date;
import java.util.List;

/**
* ${className}事务处理类
* Date:${.now}
* @author
*/
@Named
@Service
@Transactional
public class ${className}Service{

    /* ************************************************************************************ *
       ***************************************  增  ***************************************
    * ************************************************************************************* */

    /**
    * 创建${className}
    * TODO 补充调整代码
    *
    * @param entity
    * @return
    */
    /*
    public ${className} create(${className} entity) {
        ParamNullException.build().validate(entity) ;
        entity.save();
        return entity;
    }
    */

    /* ************************************************************************************ *
       ***************************************  删  ***************************************
    * ************************************************************************************* */

    /**
    * 根据ID删除${className}
    * TODO 补充调整代码
    *
    * @param id
    * @return
    */
    /*
    public void deleteById(Serializable id){
        ParamNullException.build().validate(id) ;
        new ${className}().set${keyNameUp}(id).deleteByPrimaryKey() ;
    }
    */

    /**
    * 根据ID数组删除${className}
    * TODO 补充调整代码
    *
    * @param ids
    * @return
    */
    /*
    public void deleteByIds(Serializable[] ids){
        ParamNullException.build().validate(ids) ;
        if(null != ids){
            for(Serializable id : ids){
                new ${className}().set${keyNameUp}(id).deleteByPrimaryKey() ;
            }
        }
    }
    */

    /* ************************************************************************************ *
       ***************************************  改  ***************************************
    * ************************************************************************************* */

    /**
    * 根据Id，更新${className}
    * TODO 补充调整代码
    *
    * @param entity
    * @return
    */
    /*
    public void update(${className} entity){
        ParamNullException.build().validate(entity) ;
        entity.update() ;
    }
    */

    /* ************************************************************************************ *
       ***************************************  查  ***************************************
    * ************************************************************************************* */

    /**
    * 根据主键ID查询${className}
    * TODO 补充调整代码
    * @param id
    * @return
    */
    /*
    public ${className} getById(Serializable id) {
        ParamNullException.build().validate(id) ;
        ${className} entity = new ${className}().set${keyNameUp}(id).selectByPrimaryKey();
        return entity;
    }
    */

    /**
    * 根据查询条件，分页查询${className}列表
    * TODO 补充调整代码
    * @param page
    * @param entity
    * @return
    */
    /*
    public PageResult<${className}> getPageByQuery(PageResult page, ${className} entity) {
        PageHelper.startPage(page.getPageNum(), page.getPageSize());
        PageInfo<${className}> pageInfo = new PageInfo((List) new ${className}().selectByQuery(entity));
        page.setTotal(pageInfo.getTotal());
        page.setPageData(pageInfo.getList());
        PageHelper.clearPage();
        return page;
    }
    */

}